#include <iostream>
#include <vector>
#include <string>
#include <regex>

void analyzeWords(const std::string& input) {
    if (input.empty() || input.find(' ') == std::string::npos) {
        std::cout << "Мало данных для анализа" << std::endl;
        return;
    }

    std::vector<std::string> words;
    size_t pos = 0;
    std::string token;
    while ((pos = input.find(' ')) != std::string::npos) {
        token = input.substr(0, pos);
        words.push_back(token);
        input.erase(0, pos + 1);
    }
    words.push_back(input);

    size_t numWords = words.size();
    size_t cyrillicWords = 0;
    size_t latinWords = 0;
    size_t shortWords = 0;
    size_t hyphenWords = 0;
    std::string longestWord;
    size_t longestWordLength = 0;

    for (const auto& word : words) {
        if (std::regex_match(word, std::regex("[А-Я]"))) {
            cyrillicWords++;
        }
        if (std::regex_search(word, std::regex("[a-zA-Z]"))) {
            latinWords++;
        }
        if (word.length() <= 3) {
            shortWords++;
        }
        if (word.find('-') != std::string::npos) {
            hyphenWords++;
        }
        if (word.length() > longestWordLength) {
            longestWord = word;
            longestWordLength = word.length();
        }
    }

    std::cout << "Кол-во слов: " << numWords << std::endl;
    std::cout << "Кол-во слов с заглавной кириллической буквы: " << cyrillicWords << std::endl;
    std::cout << "Кол-во слов содержащих латинский символ: " << latinWords << std::endl;
    std::cout << "Кол-во слов не превышающих 3 символа: " << shortWords << std::endl;
    std::cout << "Кол-во слов в составе которых имеется дефис: " << hyphenWords << std::endl;
    std::cout << "Самое длинное слово: " << longestWord << std::endl;
    std::cout << "Длина самого длинного слова: " << longestWordLength << std::endl;
}

int main() {
    std::string input;
    std::cout << "Введите слова через пробел: ";
    std::getline(std::cin, input);
    analyzeWords(input);

    return 0;
}

